# 在函数内部要改变 函数外面的 变量 ，需要申明 global var
# 可变参数  * 对应列表或者元组  **对应字典（键值对）


one = [1,2,3]
print(*one)

def equals(*paras):
    cishu = {}
    for i in paras:
        if i in cishu:
            cishu[i] += 1
        else:
            cishu[i] = 1

    for k,v in cishu.items():
        print(f'数字{k}出现了{v}次')

# equals(2,34,5,1,3,2,5,2,5,6,7,3)

shuju = [1,2,4,2,1,5,6,2,1,3,4,4]
# 这里的*就是把shuju这个列表展开，不用写成shuju[0],shuju[1]这样
equals(*shuju)

def fuc(**para1):
    dic1 ={}
    for k,v in para1.items():
        dic1[k] = v
    print(dic1)

#调用的时候左边是变量名，右边是任何有效的对象
fuc(libai=2,jfsl=3)
fuc(ls='sdf',sdf='ffj')
# fuc(lsd=va,lsfd=fkk)


def func1(*para):   
    print(type(para))
    for i in para:
        print(i)
func1(1,2,3,4)
a = [1,2,3,4]
func1(*a)

def func2(**para):
    print(type(para))
    for k,v in para:
        print(f'k:{k}  v:{v}')

func2(j1=1,j3=3)